草庐IT

c++ - 池化线程的 SetThreadAffinityMask

全部标签

c - C上的系统编程

我想尝试开发系统软件,设备驱动程序。我知道C是低级编程语言,在这个范围内非常流行。哪种编译器更好用(只能使用C,不能使用C++)?哪些库用于系统相关的东西?操作系统窗口。 最佳答案 如果你想做Windows驱动程序开发,那么你应该看看WDK-WindowsDriverKit.它应该包含您需要的大部分内容,包括工具、header和库(以及文档)。 关于c-C上的系统编程,我们在StackOverflow上找到一个类似的问题: https://stackoverf

c - NT 注册表句柄行为

我正在做一个应用程序虚拟化项目。所以我在NT级别挂接应用程序并将注册表调用定向到我的虚拟注册表。在运行任何应用程序时,如果我转到"file"->“打开”。我几乎没有像下面这样的注册表调用:ZwOpenKey(registrykeypath)->它生成句柄ex:(0x04e8)ZwQueryKey(0x4ea,...)ProcessMonitor说打开和查询都是在同一个键上执行的。我自己测试确认是同一个key。查询键也为查询键api生成了正确的结果。这2个字节的差异并不适用于所有打开和查询键的情况。应用程序如何以及为何在调用querykey之前将句柄从0x4e8更改为0x4ea?我还测试

c++ - CRT 和 WIN32 API

我,我想知道在Windows下哪里使用了CRT库。在形成win32API的每个dll中?仅靠visualstudio下开发的软件?换句话说,Windows操作系统是否通过使用CRT以外的其他东西来执行malloc,对文件的写入/读取等?谢谢 最佳答案 C运行时(如果是VisualStudio2010msvcr100.dll)包含C标准库函数的实现。C运行时以特定于平台的方式实现,在Windows情况下,它使用kernel32.dll(Win32API的一部分)中的函数来执行其任务。您可以使用DependencyWalker查看导出和

c++ - 使用 beginthreadex 创建线程时调试应用程序挂起

我在现场遇到一个奇怪的问题,我们的应用程序在启动时挂起。现场拿到custom生成的crashdump,显示主线程被beginthreadexapi卡住了。这是调用堆栈:0:006>kvChildEBP0161ebb8ntdll!KiFastSystemCallRet(FPO:[0,0,0])0161ebbcntdll!ZwWaitForSingleObject+0xc(FPO:[3,0,0])0161ebf8ntdll!RtlpWaitOnCriticalSection+0x1a3(FPO:[2,7,4])0161ec18ntdll!RtlEnterCriticalSection+0x

c - 我需要重写这行代码,需要帮助

我正在尝试编译下面找到的这段代码。但是,我在iteminfo_fields、weaponinfo_fields和projectileinfo_fields定义的每一行中收到一条错误消息,提示“初始化值必须是常量表达式”,每个“{NULL,0,0}”的最后一行除外我猜它来自ITEMINFO_OFS()、WEAPON_OFS()、PROJECTILE_OFS()。我试图理解这三行:#defineWEAPON_OFS(x)(size_t)&(((weaponinfo_t*)0)->x)#definePROJECTILE_OFS(x)(size_t)&(((projectileinfo_t*)

c - 如何获得某些 Visual Basic 6 控件的 IUnknown* 指针(如果有)?

我想从带有IUnknown*的VisualBasic6程序中调用一些C函数。假设我知道我的VB6应用程序中的某些控件是ActiveX控件,我能否从中获取底层IUnknown*(可能通过转换?)将其传递给C函数? 最佳答案 所有COM接口(interface)都派生自IUnknown,您可以在任何有效的接口(interface)指针上使用IUnknown方法。如果您需要对同一组件的额外引用,但不关心是哪个接口(interface),则使用IUknown的QueryInterface方法。

windows - 服务 OnExecute 失败,生成的线程未执行

首先开始在Delphi7中启动我自己的服务。遵循文档并使服务生成一个自定义线程,该线程会发出蜂鸣声并记录日志。只有它没有。最后一次尝试是在OnExecute事件过程中放置​​相同的蜂鸣声和日志代码,但是当我启动该服务时,我收到一个Windows对话框,提示它已启动然后再次停止。在thiscode中应该有一些明显的东西被我忽略了.你能看看吗?我还将接受指向简单、有效、可下载的服务示例项目的链接……这样我就可以得到每10秒左右调用一次的东西,我将从那里获取它。 最佳答案 接下来是一个基本的服务应用程序。请注意,如果您想使用Service

c++ - 适用于 Windows 的 Memcached 客户端库

我想为我的C++应用程序使用memcached。为此,我需要一个客户端库,例如类似于mysqlclient。但是我真的很难找到合适的东西。一切似乎都只是linux,虽然有些声称与Windows兼容,但它们需要cygwin和其他我真正想避免的东西。所以我正在寻找的是带有头文件的预编译Windows库(最好),或者我可以使用VisualStudio轻松编译的东西。如果没有这样的东西,你认为我自己写它会是个坏主意吗?该协议(protocol)看起来很简单,我真的只需要基本命令(设置/获取等)。 最佳答案 你试过这个吗?http://cod

c - Wndproc 和 hook 是否在主线程中?

抱歉我的愚蠢问题,但是主线程中的wndproc和Hook(调用时)?如果是,是否意味着我不能将它们用于构建键盘输入缓冲区? 最佳答案 您的窗口过程(以及任何子类窗口过程、Hook等)在调用CreateWindow的线程中运行(要求同一线程稍后处理消息队列,窗口过程实际运行当您的主消息分发循环调用DispatchMessage时)。不确定“为键盘输入构建缓冲区”是什么意思。 关于c-Wndproc和hook是否在主线程中?,我们在StackOverflow上找到一个类似的问题:

c - OpenSSL 库 : 2 on Linux libcrypto and libssl and more than 13 on windows. 我应该在 Windows 上链接什么来编译我的示例?

所以我看this示例代码:#include#include#include"openssl/sha.h"voidsha256(char*string,charoutputBuffer[65]){unsignedcharhash[SHA256_DIGEST_LENGTH];SHA256_CTXsha256;SHA256_Init(&sha256);SHA256_Update(&sha256,string,strlen(string));SHA256_Final(hash,&sha256);inti=0;for(i=0;i我应该将哪些库链接到我的项目以在Windows上编译它?